/* 
 * Toutes les fonctions js sur le choix formule BO
 */

/*
 * on document ready :
 * bordure jaune de la formule choisie
 */
$(function () {
	// 
	removeGratuit(1);
	_prixDynamique = $('.lien_dynamique').attr('prix');
	_dynamique     = $('.lien_dynamique').attr('id');
	_montant       = _prixDynamique * 100;

     //url de retour par défaut après validation par carte bancaire 
	_urlRetour     = $('#urlRetourDefaut').val(); 
	$('#tarif').val(_prixDynamique);
    $('#montant').val(_montant);
	_dynamique = parseFloat(_dynamique);
    $('#formule').val(_dynamique);
	$('#effectue').val(_urlRetour);

    $('.lien_basique, .lien_dynamique, .lien_feerique').click(function () {
		// initialisier le hidden pour le check de choix d'un pack
		$('#packChose').val('0');
        $('.lien_basique, .lien_dynamique, .lien_feerique').css('border', 'none');
        $(this).css('border', '2px solid yellow');

        _id = $(this).attr('id');
        _prix = $(this).attr('prix');
		_montant = _prix * 100;
		$('#tarif').val(_prix);
		$('#montant').val(_montant);
        $('#choix-form').val(_id);
		_id = parseFloat(_id);
        $('#formule').val(_id);

        $('#prix-form').val(_prix);
		if (_prix == '0')
        {
            removeGratuit(0);
        }
        else 
        {
            removeGratuit(1);
        }
        updateOption(_id);
        getUrlRetour();

        return false;
    });


    $('.selectionne').each(function(){
        if( $(this).val() == '1'){
            $(this).next('a').css('border','2px solid yellow');
        } 
    });

	$('#link-form-opt').click(function(){
            	    cb = $('#RefPaiement').val();
                    if (verifierCondition() && cb != 'cb') {
                        document.forms['form-choix'].submit();
                    } else {
                        document.forms['form-cb'].submit();
                    }
                   return false;
   });


});

function miditra(val) {
	_val = val;
	prixForm    = $('#prix-form').val();
	totalIfPack = parseFloat(prixForm);
	total       = parseFloat(prixForm);
    var k = 0;
    var _collector = "";

	if (_val)
	{
		// avoid multiple match with temp and _val
		$(".select_choix").each(function(){
			_cur = $(this);
			_valueSelected = _cur.val();
			if (_valueSelected == _val)
			{
				_cur.find('option').each(function(){
					$(this).removeAttr('temp');
				});
			}

	        if (_valueSelected != "")
            {
                var sep = (k>0)? ',' : '';
                _collector += sep + _valueSelected;
                k++;
            }
		});


		 $(".select_choix option").each(function(){

				_prix_option = $(this).attr('optionPrix');

				if($(this).val() == _val || $(this).attr('temp') > 0) {
					if ($(this).val() == "65") // on a choisit le pack, ne tenir en compte que la somme du prix de la formule et du prix du pack
					{
						$('#packChose').val('1');
					}

					
					if ($(this).attr('temp') > 0) {
						if (_val != "") {
							total += parseFloat($(this).attr('temp'));
						}
					} else {
						$(this).attr('temp', _prix_option);
						total += parseFloat(_prix_option) ;
					}

					if (total)
					{
						removeGratuit(1);
					}
					else
					{
						removeGratuit(0);

					}
				}
		});
	}
	else
	{
		// removing temp
		 $(".select_choix option").each(function(){
			  $(this).removeAttr('temp');
		 });

		// removing item
		$(".select_choix").each(function(index){
			_current       =  $(this);
			_valueSelected = _current.val();
			_prix_option   = $(this).attr('optionPrix');
			

			if (_valueSelected)
			{
				// get the price
				_current.find('option').each(function(){
					if ($(this).val() == _valueSelected)
					{
						if ($(this).val() == "65") // on a choisit le pack, ne tenir en compte que la somme du prix de la formuel et du prix du pack
						{
							$('#packChose').val('1');
						}
						$(this).attr('temp', _prix_option);
						total += parseFloat(_prix_option);
					}
				});

		     var sep = (k>0)? ',' : '';
			_collector += sep + _valueSelected;
			 k++;

			}
		});
	}
	if(total)
    {
		total			= parseFloat(total);
		totalIfPack		= parseFloat(totalIfPack);
	
		if ($('#packChose').val() == "1") { // on a choisit le pack
			_montant	= (totalIfPack + parseFloat(19.90)).toFixed(2);
			total		= parseFloat(_montant)*100;
		} else {
			_montant	= (total.toFixed(2)) * 100;
			total		= _montant ;
		}

		total			= parseFloat(total);
		__tarif			= total.toFixed(2);
		__tarif			= parseFloat(__tarif);

		$('#tarif').val(__tarif);
		$('#tarif_norm').val(__tarif);
		$('#montant').val(__tarif);
	}
	
	$('#choix').val(_collector);
    getUrlRetour();
}

/*
 * Fonction pour verifier si la CG est cochée
 * avant de soumettre le formulaire
 * Etablir la liste des choix séléctionnée sous la form c1,c2,c3
 */
function verifierCondition(){    
        // la formule choisie
        var _formule = $('#choix-form').val();


        $('#error').html('');
        if (!_formule)
        {
            $('#error').html('Veuillez choisir une formule pour continuer !!');
            //$('#cond_gen').focus();
            return false; 
        }

        /*
        * Etablir la liste des choix séléctionnées
        */
        var _collector = "";
        var k = 0;
        $('.select_choix').each(function () {
            var _currentVal = $(this).val();
            if (_currentVal != "")
            {
                var sep = (k>0)? ',' : '';
                _collector += sep + _currentVal;
                 k++;
            }
        });
        $('#choix').val(_collector);
        // fin choix        

        return true;
}

/*
 * Mettre à jour les options en fonction de la formule choisie
 * @param int idFormule
 */ 
function updateOption(idFormule){
    var url = $('#urlUpdate').val();
    /*
     * Recuperer les options supp aux options de formule choisie
     * et de celles des annonces
     * url = annonce~FoAnnonceGestion:ajaxGetChoicesOptionsByFormuleId
     */
    $.getJSON(url,{formuleId: idFormule,idOccasion: 0}, function(result){
        var zoptions = '';
        size = result.listeLibOption.length;
        /*
         * formattage du HTML en fonction de la résultat de la requête
         */
        for (i = 0; i < size; i++) {
        zoptions += '<dl class="rows"><dt><label>'+result.listeLibOption[i]+' : </label></dt>';
        zoptions += '<dd><select id="parution_' + i +'"  class="select_choix" onchange="miditra(this.value);">';
        zoptions += '<option value="">Sélectionner</option>';
        var tabChoix = result.listeChoix;
        var sizeChoix = tabChoix.length;
        for(j=0 ; j< sizeChoix ; j++){
            if (result.listeLibOption[i] == tabChoix[j].lib_option_formule)
                zoptions += '<option optionPrix ="'+tabChoix[j].formch_prix+'" value="' + tabChoix[j].formch_id + '"';
                if( (result.formuleId == $('#choix-form-deb').val()) && inArray(result.tabChoixId,tabChoix[j].formch_id))
                zoptions += ' selected '; 
                zoptions += '>'; 
                zoptions += tabChoix[j].formch_libelle +' ';
                if (tabChoix[j].formch_prix != null) zoptions += tabChoix[j].formch_prix +'€  ';
                if (tabChoix[j].formch_duree != null) zoptions += tabChoix[j].formch_duree;
                zoptions += ' </option>';
        }
        zoptions += '</select></dd></dl>';
        };
        // update le contenu
        $("#ajListeannonce").html(zoptions);
    });
}

/*
 * Fonction pour enlever le type de paiement gratuit si prix >0 
 */
function removeGratuit(cond){
    if(cond == '1'){
        $('#RefPaiement #g').remove(); 
		paiant = "<option value=''></option>";
		paiant += "                  <option selected='' value='ch'>Chèque</option>";
		paiant += "        <option value='cb'>Carte Bancaire</option>";
		paiant += "<option value='md'>Mandat</option>";
		$('#RefPaiement').html(paiant);
    } else {
		gr = $('#g').val();
		if (gr == undefined)
		{
			_gratuit = '<option value="g" id="g">Gratuit</option>';
			$('#RefPaiement').html(_gratuit);
		}
    }
    
}

 // Fonction pour obtenir l'url lors de validation de paiement
function getUrlRetour(){
	
      var url = $('#urlRetour').val();
	  $.getJSON(url,{formuleId: $("#formule").val(),choix: $('#choix').val()}, function(result){
           $('#effectue').val(result);
      });
}